Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Програмування задач лінійної структури. Обчислення виразів.

Інформація про навчальний заклад

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Лабораторна робота
Предмет:
Програмування частина 4 Технологія системного програмування

Частина тексту файла

Мета: вивчити способи задання констант та змінних в Асемблері та набути навиків використання арифметичних команд над даними різного розміру. Заданий вираз: X=A2*B1+C4/(K-E1*F1) К=A77627h Таким чином, в сегменті даних слід відвести місце не лише під вхідні дані та константу, а й під проміжні та остаточні результати, відповідних розмірностей. Зауважимо, що оскільки значення К є трибайтним, а арифметичні дії можуть виконуватися над дво- або чотирибайтними даним, то цю константу варто розбити на дві двобайтні частини – молодшу (7627h), та старшу (00A7h). Це полегшить звертання та оперування зі значенням константи К, хоча такий підхід не є обов’язковим. Такі ж міркування стосуються проміжних результатів та остаточного результату X. Отже, сегмент даних може буде описаний таким чином: .MODEL SMALL .STACK 100h .DATA K_low EQU 7627h K_high EQU 00A7h A dw 2h ;=2 B db 1h ;=1 C dd B71B00h ;=12000000 E db 14h ;=20 F db 3Ch ;=60 Temp1 dw 00h,00h Temp2 dw 0000h Temp3 dw 00h,00h Temp4 dw 00h,00h X dw 00h,00h Опис розділених змінних можна виконувати під різними іменами (наприклад K_low та K_high), або під одним іменем як різні елементи даних (тобто через кому, наприклад Temp1). В останньому випадку, звертання до молодшої частини буде відбуватися по імені, а до старшої - ім’я +зміщення (Temp1 – два молодші байти, Temp1+2 - два старші байти). Всі невідомі значення заповнюємо нуля, щоб уникнути непередбачуваних результатів.. Наступні обчислення виконуємо за допомогою операцій DIV, MUL, ADD, ADC, SUB,SBB згідно з їх форматами та розмірністю даних. Повний текст програми, що виконує дані обчислення приведений нижче. Остаточний результат обчислення виразу буде знаходитися в пам’яті за адресою X. .MODEL SMALL .STACK 100h .DATA K_low EQU 7627h K_high EQU 00A7h A dw 2h ;=2 B db 1h ;=1 C dd B71B00h ;=12000000 E db 14h ;=20 F db 3Ch ;=60 Temp1 dw 00h,00h Temp2 dw 0000h Temp3 dw 00h,00h Temp4 dw 00h,00h X dw 00h,00h .CODE mov ax,@data mov ds,ax mov ax,0 mov al,B mul A mov Temp1,ax;=0002 mov Temp1+2,dx;=0000 mov ax,0 mov al,E mul F mov Temp2,ax ;=04B0 mov dx,K_high mov ax,K_low2 mov bx,Temp2 sub ax,bx sbb dx,0 mov Temp3,ax;=7177 mov Temp3+2,dx;=00A7 mov ax,word ptr[C] mov dx,word ptr[C+2] div Temp3 mov Temp4,ax mov ax,Temp4 add Temp1,ax adc Temp1+2,0 mov X,ax mov X+2,dx mov ah,4Ch int 21h end
Антиботан аватар за замовчуванням

19.12.2013 23:12

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини